home *** CD-ROM | disk | FTP | other *** search
/ Gold Medal Software 3 / Gold Medal Software - Volume 3 (Gold Medal) (1994).iso / misc / esptest.arj / ESPIMAGE.PAS < prev    next >
Pascal/Delphi Source File  |  1992-03-02  |  25KB  |  718 lines

  1. {**********************************************************}
  2. {**      Copyright 1991 Phil Mosier                      **}
  3. {**********************************************************}
  4.  
  5. Unit ESPIMAGE;
  6.  
  7. {**********************************************************}
  8. {**                                                      **}
  9. {**      An  unit of images                              **}
  10. {**                                                      **}
  11. {**********************************************************}
  12.  
  13. Interface
  14. Uses GRAPH, CRT;
  15. Procedure IMAGE_1(LEFT_X_VAL:Integer;TOP_Y_VAL:Integer;SIZE_FACTOR:Real);
  16. Procedure IMAGE_2(LEFT_X_VAL:Integer;TOP_Y_VAL:Integer;SIZE_FACTOR:Real);
  17. Procedure IMAGE_3(LEFT_X_VAL:Integer;TOP_Y_VAL:Integer;SIZE_FACTOR:Real);
  18. Procedure IMAGE_4(LEFT_X_VAL:Integer;TOP_Y_VAL:Integer;SIZE_FACTOR:Real);
  19. Procedure IMAGE_5(LEFT_X_VAL:Integer;TOP_Y_VAL:Integer;SIZE_FACTOR:Real);
  20. Procedure MAKE_MENU;
  21. Procedure SONG;
  22. Procedure PROGRAM_INFO;
  23. Procedure BOXES;
  24.  
  25. Implementation
  26. Procedure IMAGE_1(lEFT_X_VAL:Integer;TOP_Y_VAL:Integer;SIZE_FACTOR:Real);
  27. {*********************************************************}
  28. {**                                                     **}
  29. {**     Declare Image 1's values    Cleft               **}
  30. {**                                                     **}
  31. {*********************************************************}
  32. Var INDEX : integer;
  33.     IMAGE_1_ARRAY : Array[1..28,1..2]  Of Byte;
  34.     CENTER_X : Integer;
  35.     CENTER_Y : Integer;
  36. Begin
  37.    IMAGE_1_ARRAY[1,1] := 24;
  38.       IMAGE_1_ARRAY[1,2] := 32;
  39.    IMAGE_1_ARRAY[2,1] := 21;
  40.       IMAGE_1_ARRAY[2,2] := 29;
  41.    IMAGE_1_ARRAY[3,1] := 21;
  42.       IMAGE_1_ARRAY[3,2] := 26;
  43.    IMAGE_1_ARRAY[4,1] := 24;
  44.       IMAGE_1_ARRAY[4,2] := 24;
  45.    IMAGE_1_ARRAY[5,1] := 28;
  46.       IMAGE_1_ARRAY[5,2] := 23;
  47.    IMAGE_1_ARRAY[6,1] := 32;
  48.       IMAGE_1_ARRAY[6,2] := 24;
  49.    IMAGE_1_ARRAY[7,1] := 34;
  50.       IMAGE_1_ARRAY[7,2] := 28;
  51.    IMAGE_1_ARRAY[8,1] := 32;
  52.       IMAGE_1_ARRAY[8,2] := 34;
  53.    IMAGE_1_ARRAY[9,1] := 24;
  54.       IMAGE_1_ARRAY[9,2] := 36;
  55.    IMAGE_1_ARRAY[10,1] := 18;
  56.       IMAGE_1_ARRAY[10,2] := 34;
  57.    IMAGE_1_ARRAY[11,1] := 14;
  58.       IMAGE_1_ARRAY[11,2] := 29;
  59.    IMAGE_1_ARRAY[12,1] := 14;
  60.       IMAGE_1_ARRAY[12,2] := 25;
  61.    IMAGE_1_ARRAY[13,1] := 18;
  62.       IMAGE_1_ARRAY[13,2] := 20;
  63.    IMAGE_1_ARRAY[14,1] := 24;
  64.       IMAGE_1_ARRAY[14,2] := 16;
  65.    IMAGE_1_ARRAY[15,1] := 29;
  66.       IMAGE_1_ARRAY[15,2] := 12;
  67.    IMAGE_1_ARRAY[16,1] := 29;
  68.       IMAGE_1_ARRAY[16,2] := 8;
  69.    IMAGE_1_ARRAY[17,1] := 26;
  70.       IMAGE_1_ARRAY[17,2] := 2;
  71.    IMAGE_1_ARRAY[18,1] := 22;
  72.       IMAGE_1_ARRAY[18,2] := 8;
  73.    IMAGE_1_ARRAY[19,1] := 30;
  74.       IMAGE_1_ARRAY[19,2] := 42;
  75.    IMAGE_1_ARRAY[20,1] := 28;
  76.       IMAGE_1_ARRAY[20,2] := 46;
  77.    IMAGE_1_ARRAY[21,1] := 24;
  78.       IMAGE_1_ARRAY[21,2] := 48;
  79.    IMAGE_1_ARRAY[22,1] := 20;
  80.       IMAGE_1_ARRAY[22,2] := 46;
  81.    IMAGE_1_ARRAY[23,1] := 18;
  82.       IMAGE_1_ARRAY[23,2] := 42;
  83.    IMAGE_1_ARRAY[24,1] := 20;
  84.       IMAGE_1_ARRAY[24,2] := 40;
  85.    IMAGE_1_ARRAY[25,1] := 24;
  86.       IMAGE_1_ARRAY[25,2] := 41;
  87.    IMAGE_1_ARRAY[26,1] := 23;
  88.       IMAGE_1_ARRAY[26,2] := 44;
  89.    IMAGE_1_ARRAY[27,1] := 20;
  90.       IMAGE_1_ARRAY[27,2] := 44;
  91.    For INDEX := 1 To 26 Do Begin
  92.       Line((Round(LEFT_X_VAL + (IMAGE_1_ARRAY[INDEX,1] * SIZE_FACTOR))),
  93.           (Round(TOP_y_VAL + (IMAGE_1_ARRAY[INDEX,2] * SIZE_FACTOR))),
  94.           (Round(LEFT_X_VAL + (IMAGE_1_ARRAY[INDEX + 1,1] * SIZE_FACTOR))),
  95.           (Round(TOP_Y_VAL + (IMAGE_1_ARRAY[INDEX + 1,2] * SIZE_FACTOR))));
  96.    End;
  97.    CENTER_X := LEFT_X_VAL + (Round( 20 * SIZE_FACTOR));
  98.    CENTER_Y := TOP_Y_VAL + (Round (42 * SIZE_FACTOR));
  99.    FloodFill(CENTER_X,CENTER_Y,GetMaxColor);
  100.  
  101. End;
  102. Procedure IMAGE_2(lEFT_X_VAL:Integer;TOP_Y_VAL:Integer;SIZE_FACTOR:Real);
  103. {*********************************************************}
  104. {**                                                     **}
  105. {**     Declare Image 2's values    Heart               **}
  106. {**                                                     **}
  107. {*********************************************************}
  108. Var INDEX : Integer;
  109.     IMAGE_2_ARRAY : Array[1..23,1..2]  Of Byte;
  110.     CENTER_X : Integer;
  111.     CENTER_Y : Integer;
  112. Begin
  113.    IMAGE_2_ARRAY[1,1] := 25;
  114.       IMAGE_2_ARRAY[1,2] := 10;
  115.    IMAGE_2_ARRAY[2,1] := 28;
  116.       IMAGE_2_ARRAY[2,2] := 6;
  117.    IMAGE_2_ARRAY[3,1] := 32;
  118.       IMAGE_2_ARRAY[3,2] := 4;
  119.    IMAGE_2_ARRAY[4,1] := 35;
  120.       IMAGE_2_ARRAY[4,2] := 3;
  121.    IMAGE_2_ARRAY[5,1] := 40;
  122.       IMAGE_2_ARRAY[5,2] := 4;
  123.    IMAGE_2_ARRAY[6,1] := 44;
  124.       IMAGE_2_ARRAY[6,2] := 6;
  125.    IMAGE_2_ARRAY[7,1] := 48;
  126.       IMAGE_2_ARRAY[7,2] := 12;
  127.    IMAGE_2_ARRAY[8,1] := 49;
  128.       IMAGE_2_ARRAY[8,2] := 17;
  129.    IMAGE_2_ARRAY[9,1] := 49;
  130.       IMAGE_2_ARRAY[9,2] := 21;
  131.    IMAGE_2_ARRAY[10,1] := 40;
  132.       IMAGE_2_ARRAY[10,2] := 32;
  133.    IMAGE_2_ARRAY[11,1] := 32;
  134.       IMAGE_2_ARRAY[11,2] := 38;
  135.    IMAGE_2_ARRAY[12,1] := 25;
  136.       IMAGE_2_ARRAY[12,2] := 47;
  137.    IMAGE_2_ARRAY[13,1] := 18;
  138.       IMAGE_2_ARRAY[13,2] := 38;
  139.    IMAGE_2_ARRAY[14,1] := 10;
  140.       IMAGE_2_ARRAY[14,2] := 32;
  141.    IMAGE_2_ARRAY[15,1] := 1;
  142.       IMAGE_2_ARRAY[15,2] := 21;
  143.    IMAGE_2_ARRAY[16,1] := 1;
  144.       IMAGE_2_ARRAY[16,2] := 17;
  145.    IMAGE_2_ARRAY[17,1] := 2;
  146.       IMAGE_2_ARRAY[17,2] := 12;
  147.    IMAGE_2_ARRAY[18,1] := 6;
  148.       IMAGE_2_ARRAY[18,2] := 6;
  149.    IMAGE_2_ARRAY[19,1] := 10;
  150.       IMAGE_2_ARRAY[19,2] := 4;
  151.    IMAGE_2_ARRAY[20,1] := 15;
  152.       IMAGE_2_ARRAY[20,2] := 3;
  153.    IMAGE_2_ARRAY[21,1] := 20;
  154.       IMAGE_2_ARRAY[21,2] := 4;
  155.    IMAGE_2_ARRAY[22,1] := 22;
  156.       IMAGE_2_ARRAY[22,2] := 6;
  157.    IMAGE_2_ARRAY[23,1] := 25;
  158.       IMAGE_2_ARRAY[23,2] := 10;
  159.    For INDEX := 1 To 22 Do Begin
  160.       Line((Round(LEFT_X_VAL + (IMAGE_2_ARRAY[INDEX,1] * SIZE_FACTOR))),
  161.           (Round(TOP_Y_VAL + (IMAGE_2_ARRAY[INDEX,2] * SIZE_FACTOR))),
  162.           (Round(LEFT_X_VAL + (IMAGE_2_ARRAY[INDEX + 1,1] * SIZE_FACTOR))),
  163.           (Round(TOP_Y_VAL + (IMAGE_2_ARRAY[INDEX + 1,2] * SIZE_FACTOR))));
  164.    End;
  165.    CENTER_X := LEFT_X_VAL + 1 + (Round ( 24 * SIZE_FACTOR));
  166.    CENTER_Y := TOP_Y_VAL + (Round (24 * SIZE_FACTOR));
  167.    FloodFill(CENTER_X,CENTER_Y,GetMaxColor);
  168. End;
  169. Procedure IMAGE_3(lEFT_X_VAL:Integer;TOP_Y_VAL:Integer;SIZE_FACTOR:Real);
  170. {*********************************************************}
  171. {**                                                     **}
  172. {**     Declair image 3's values Ying-Yang              **}
  173. {**                                                     **}
  174. {*********************************************************}
  175. Var CENTER_X : Integer;
  176.     CENTER_Y : Integer;
  177.     RADIUS : Integer;
  178.     HOLE : Pointer;
  179.     HOLE_SIZE: Word;
  180. Begin
  181.    CENTER_X := LEFT_X_VAL + 1 + (Round ( 24 * SIZE_FACTOR));
  182.    CENTER_Y := TOP_Y_VAL + (Round (24 * SIZE_FACTOR));
  183.    RADIUS := Round(24 * SIZE_FACTOR);
  184.    Circle(CENTER_X,CENTER_Y,RADIUS);
  185.    CENTER_X := LEFT_X_VAL + 1 + (Round( 24 * SIZE_FACTOR));
  186.    CENTER_Y := TOP_Y_VAL + (Round(15 * SIZE_FACTOR));
  187.    RADIUS := Round( 3 * SIZE_FACTOR);
  188.    HOLE_SIZE := ImageSize(0,0,4,4);
  189.    GetMem(HOLE,HOLE_SIZE);
  190.    Circle(CENTER_X,CENTER_Y,RADIUS);
  191.    RADIUS := Round( 12 * SIZE_FACTOR);
  192.    Arc(CENTER_X,CENTER_Y,90,270,RADIUS);
  193.    FloodFill(CENTER_X,CENTER_Y,GetMaxColor);  {***}
  194.    GetImage((CENTER_X - 2 ),(CENTER_Y - 2 ),
  195.             (CENTER_X + 2 ),(CENTER_Y + 2 ),HOLE^);
  196.    CENTER_X := LEFT_X_VAL + 1 + (Round( 24 * SIZE_FACTOR));
  197.    CENTER_Y := TOP_Y_VAL + (Round(33 * SIZE_FACTOR));
  198.    RADIUS := Round( 12 * SIZE_FACTOR);
  199.    Arc(CENTER_X,CENTER_Y,270,90,RADIUS);
  200.    CENTER_X := LEFT_X_VAL + 1 + (Round( 24 * SIZE_FACTOR));
  201.    CENTER_Y := TOP_Y_VAL + (Round(33 * SIZE_FACTOR));
  202.    FloodFill(CENTER_X,CENTER_Y,GetMaxColor);
  203.    PutImage((CENTER_X - 2 ),(CENTER_Y - 2 ),HOLE^,NotPut);
  204.    FreeMem(HOLE,HOLE_SIZE);
  205. End;
  206.  
  207. Procedure IMAGE_4(lEFT_X_VAL:Integer;TOP_Y_VAL:Integer;SIZE_FACTOR:Real);
  208. {*********************************************************}
  209. {**                                                     **}
  210. {**     Declair Image 2's values    Four Leaf Clover    **}
  211. {**                                                     **}
  212. {*********************************************************}
  213. Var INDEX : Integer;
  214.     IMAGE_4_ARRAY : Array[1..49,1..2]  Of Byte;
  215.     CENTER_X : Integer;
  216.     CENTER_Y : Integer;
  217. Begin
  218.    IMAGE_4_ARRAY[1,1] := 26;
  219.       IMAGE_4_ARRAY[1,2] := 20;
  220.    IMAGE_4_ARRAY[2,1] := 28;
  221.       IMAGE_4_ARRAY[2,2] := 4;
  222.    IMAGE_4_ARRAY[3,1] := 32;
  223.       IMAGE_4_ARRAY[3,2] := 1;
  224.    IMAGE_4_ARRAY[4,1] := 37;
  225.       IMAGE_4_ARRAY[4,2] := 1;
  226.    IMAGE_4_ARRAY[5,1] := 40;
  227.       IMAGE_4_ARRAY[5,2] := 4;
  228.    IMAGE_4_ARRAY[6,1] := 40;
  229.       IMAGE_4_ARRAY[6,2] := 6;
  230.    IMAGE_4_ARRAY[7,1] := 42;
  231.       IMAGE_4_ARRAY[7,2] := 6;
  232.    IMAGE_4_ARRAY[8,1] := 45;
  233.       IMAGE_4_ARRAY[8,2] := 9;
  234.    IMAGE_4_ARRAY[9,1] := 45;
  235.       IMAGE_4_ARRAY[9,2] := 14;
  236.    IMAGE_4_ARRAY[10,1] := 42;
  237.       IMAGE_4_ARRAY[10,2] := 18;
  238.    IMAGE_4_ARRAY[11,1] := 26;
  239.       IMAGE_4_ARRAY[11,2] := 20;
  240.    IMAGE_4_ARRAY[12,1] := 28;
  241.       IMAGE_4_ARRAY[12,2] := 22;
  242.    IMAGE_4_ARRAY[13,1] := 42;
  243.       IMAGE_4_ARRAY[13,2] := 24;
  244.    IMAGE_4_ARRAY[14,1] := 45;
  245.       IMAGE_4_ARRAY[14,2] := 28;
  246.    IMAGE_4_ARRAY[15,1] := 45;
  247.       IMAGE_4_ARRAY[15,2] := 33;
  248.    IMAGE_4_ARRAY[16,1] := 42;
  249.       IMAGE_4_ARRAY[16,2] := 36;
  250.    IMAGE_4_ARRAY[17,1] := 40;
  251.       IMAGE_4_ARRAY[17,2] := 36;
  252.    IMAGE_4_ARRAY[18,1] := 40;
  253.       IMAGE_4_ARRAY[18,2] := 38;
  254.    IMAGE_4_ARRAY[19,1] := 37;
  255.       IMAGE_4_ARRAY[19,2] := 41;
  256.    IMAGE_4_ARRAY[20,1] := 32;
  257.       IMAGE_4_ARRAY[20,2] := 41;
  258.    IMAGE_4_ARRAY[21,1] := 30;
  259.       IMAGE_4_ARRAY[21,2] := 38;
  260.    IMAGE_4_ARRAY[22,1] := 28;
  261.       IMAGE_4_ARRAY[22,2] := 22;
  262.    IMAGE_4_ARRAY[23,1] := 24;
  263.       IMAGE_4_ARRAY[23,2] := 22;
  264.    IMAGE_4_ARRAY[24,1] := 22;
  265.       IMAGE_4_ARRAY[24,2] := 36;
  266.    IMAGE_4_ARRAY[25,1] := 18;
  267.       IMAGE_4_ARRAY[25,2] := 41;
  268.    IMAGE_4_ARRAY[26,1] := 13;
  269.       IMAGE_4_ARRAY[26,2] := 41;
  270.    IMAGE_4_ARRAY[27,1] := 10;
  271.       IMAGE_4_ARRAY[27,2] := 38;
  272.    IMAGE_4_ARRAY[28,1] := 10;
  273.       IMAGE_4_ARRAY[28,2] := 36;
  274.    IMAGE_4_ARRAY[29,1] := 8;
  275.       IMAGE_4_ARRAY[29,2] := 36;
  276.    IMAGE_4_ARRAY[30,1] := 5;
  277.       IMAGE_4_ARRAY[30,2] := 33;
  278.    IMAGE_4_ARRAY[31,1] := 5;
  279.       IMAGE_4_ARRAY[31,2] := 28;
  280.    IMAGE_4_ARRAY[32,1] := 8;
  281.       IMAGE_4_ARRAY[32,2] := 24;
  282.    IMAGE_4_ARRAY[33,1] := 24;
  283.       IMAGE_4_ARRAY[33,2] := 22;
  284.    IMAGE_4_ARRAY[34,1] := 24;
  285.       IMAGE_4_ARRAY[34,2] := 20;
  286.    IMAGE_4_ARRAY[35,1] := 8;
  287.       IMAGE_4_ARRAY[35,2] := 18;
  288.    IMAGE_4_ARRAY[36,1] := 5;
  289.       IMAGE_4_ARRAY[36,2] := 14;
  290.    IMAGE_4_ARRAY[37,1] := 5;
  291.       IMAGE_4_ARRAY[37,2] := 9;
  292.    IMAGE_4_ARRAY[38,1] := 8;
  293.       IMAGE_4_ARRAY[38,2] := 6;
  294.    IMAGE_4_ARRAY[39,1] := 10;
  295.       IMAGE_4_ARRAY[39,2] := 6;
  296.    IMAGE_4_ARRAY[40,1] := 10;
  297.       IMAGE_4_ARRAY[40,2] := 4;
  298.    IMAGE_4_ARRAY[41,1] := 13;
  299.       IMAGE_4_ARRAY[41,2] := 1;
  300.    IMAGE_4_ARRAY[42,1] := 18;
  301.       IMAGE_4_ARRAY[42,2] := 1;
  302.    IMAGE_4_ARRAY[43,1] := 22;
  303.       IMAGE_4_ARRAY[43,2] := 4;
  304.    IMAGE_4_ARRAY[44,1] := 25;
  305.       IMAGE_4_ARRAY[44,2] := 20;
  306.    IMAGE_4_ARRAY[45,1] := 26;
  307.       IMAGE_4_ARRAY[45,2] := 34;
  308.    IMAGE_4_ARRAY[46,1] := 28;
  309.       IMAGE_4_ARRAY[46,2] := 42;
  310.    IMAGE_4_ARRAY[47,1] := 30;
  311.       IMAGE_4_ARRAY[47,2] := 44;
  312.    IMAGE_4_ARRAY[48,1] := 36;
  313.       IMAGE_4_ARRAY[48,2] := 46;
  314.    IMAGE_4_ARRAY[49,1] := 42;
  315.       IMAGE_4_ARRAY[49,2] := 47;
  316.    For INDEX := 1 To 48 Do Begin
  317.       Line((Round(LEFT_X_VAL + (IMAGE_4_ARRAY[INDEX,1] * SIZE_FACTOR))),
  318.           (Round(TOP_y_VAL + (IMAGE_4_ARRAY[INDEX,2] * SIZE_FACTOR))),
  319.           (Round(LEFT_X_VAL + (IMAGE_4_ARRAY[INDEX + 1,1] * SIZE_FACTOR))),
  320.           (Round(TOP_Y_VAL + (IMAGE_4_ARRAY[INDEX + 1,2] * SIZE_FACTOR))));
  321.    End;
  322.    CENTER_X := LEFT_X_VAL + 1 + (Round ( 10 * SIZE_FACTOR));
  323.    CENTER_Y := TOP_Y_VAL + (Round (10 * SIZE_FACTOR));
  324.    FloodFill(CENTER_X,CENTER_Y,GetMaxColor);
  325.    CENTER_X := LEFT_X_VAL + 1 + (Round ( 30 * SIZE_FACTOR));
  326.    CENTER_Y := TOP_Y_VAL + (Round (10 * SIZE_FACTOR));
  327.    FloodFill(CENTER_X,CENTER_Y,GetMaxColor);
  328.    CENTER_X := LEFT_X_VAL + 1 + (Round ( 10 * SIZE_FACTOR));
  329.    CENTER_Y := TOP_Y_VAL + (Round (30 * SIZE_FACTOR));
  330.    FloodFill(CENTER_X,CENTER_Y,GetMaxColor);
  331.    CENTER_X := LEFT_X_VAL + 1 + (Round ( 30 * SIZE_FACTOR));
  332.    CENTER_Y := TOP_Y_VAL + (ROund (30 * SIZE_FACTOR));
  333.    FloodFill(CENTER_X,CENTER_Y,GetMaxColor);
  334. End;
  335. Procedure IMAGE_5(lEFT_X_VAL:Integer;TOP_Y_VAL:Integer;SIZE_FACTOR:Real);
  336. {*********************************************************}
  337. {**                                                     **}
  338. {**     Declare Image 2's values    Diamond             **}
  339. {**                                                     **}
  340. {*********************************************************}
  341. Var INDEX : Integer;
  342.     IMAGE_5_ARRAY : Array[1..34,1..4] Of Byte;
  343.     CENTER_X : Integer;
  344.     CENTER_Y : Integer;
  345. Begin
  346.    IMAGE_5_ARRAY[1,1] := 2;
  347.       IMAGE_5_ARRAY[1,2] := 14;
  348.          IMAGE_5_ARRAY[1,3] := 9;
  349.             IMAGE_5_ARRAY[1,4] := 7;
  350.    IMAGE_5_ARRAY[2,1] := 9;
  351.       IMAGE_5_ARRAY[2,2] := 7;
  352.          IMAGE_5_ARRAY[2,3] := 42;
  353.             IMAGE_5_ARRAY[2,4] := 7;
  354.    IMAGE_5_ARRAY[3,1] := 42;
  355.       IMAGE_5_ARRAY[3,2] := 7;
  356.          IMAGE_5_ARRAY[3,3] := 49;
  357.             IMAGE_5_ARRAY[3,4] := 14;
  358.    IMAGE_5_ARRAY[4,1] := 2;
  359.       IMAGE_5_ARRAY[4,2] := 14;
  360.          IMAGE_5_ARRAY[4,3] := 25;
  361.             IMAGE_5_ARRAY[4,4] := 34;
  362.    IMAGE_5_ARRAY[5,1] := 25;
  363.       IMAGE_5_ARRAY[5,2] := 34;
  364.          IMAGE_5_ARRAY[5,3] := 49;
  365.             IMAGE_5_ARRAY[5,4] := 14;
  366.    IMAGE_5_ARRAY[6,1] := 2;
  367.       IMAGE_5_ARRAY[6,2] := 14;
  368.          IMAGE_5_ARRAY[6,3] := 49;
  369.             IMAGE_5_ARRAY[6,4] := 14;
  370.    IMAGE_5_ARRAY[7,1] := 4;
  371.       IMAGE_5_ARRAY[7,2] := 14;
  372.          IMAGE_5_ARRAY[7,3] := 7;
  373.             IMAGE_5_ARRAY[7,4] := 9;
  374.    IMAGE_5_ARRAY[8,1] := 7;
  375.       IMAGE_5_ARRAY[8,2] := 9;
  376.          IMAGE_5_ARRAY[8,3] := 13;
  377.             IMAGE_5_ARRAY[8,4] := 7;
  378.    IMAGE_5_ARRAY[9,1] := 7;
  379.       IMAGE_5_ARRAY[9,2] := 9;
  380.          IMAGE_5_ARRAY[9,3] := 10;
  381.             IMAGE_5_ARRAY[9,4] := 14;
  382.    IMAGE_5_ARRAY[10,1] := 10;
  383.       IMAGE_5_ARRAY[10,2] := 14;
  384.          IMAGE_5_ARRAY[10,3] := 17;
  385.             IMAGE_5_ARRAY[10,4] := 9;
  386.    IMAGE_5_ARRAY[11,1] := 13;
  387.       IMAGE_5_ARRAY[11,2] := 7;
  388.          IMAGE_5_ARRAY[11,3] := 17;
  389.             IMAGE_5_ARRAY[11,4] := 9;
  390.    IMAGE_5_ARRAY[12,1] := 17;
  391.       IMAGE_5_ARRAY[12,2] := 9;
  392.          IMAGE_5_ARRAY[12,3] := 26;
  393.             IMAGE_5_ARRAY[12,4] := 7;
  394.    IMAGE_5_ARRAY[13,1] := 17;
  395.       IMAGE_5_ARRAY[13,2] := 9;
  396.          IMAGE_5_ARRAY[13,3] := 16;
  397.             IMAGE_5_ARRAY[13,4] := 14;
  398.    IMAGE_5_ARRAY[14,1] := 17;
  399.       IMAGE_5_ARRAY[14,2] := 9;
  400.          IMAGE_5_ARRAY[14,3] := 25;
  401.             IMAGE_5_ARRAY[14,4] := 14;
  402.    IMAGE_5_ARRAY[15,1] := 26;
  403.       IMAGE_5_ARRAY[15,2] := 7;
  404.          IMAGE_5_ARRAY[15,3] := 36;
  405.             IMAGE_5_ARRAY[15,4] := 10;
  406.    IMAGE_5_ARRAY[16,1] := 36;
  407.       IMAGE_5_ARRAY[16,2] := 10;
  408.          IMAGE_5_ARRAY[16,3] := 42;
  409.             IMAGE_5_ARRAY[16,4] := 14;
  410.    IMAGE_5_ARRAY[17,1] := 36;
  411.       IMAGE_5_ARRAY[17,2] := 10;
  412.          IMAGE_5_ARRAY[17,3] := 36;
  413.             IMAGE_5_ARRAY[17,4] := 14;
  414.    IMAGE_5_ARRAY[18,1] := 36;
  415.       IMAGE_5_ARRAY[18,2] := 10;
  416.          IMAGE_5_ARRAY[18,3] := 39;
  417.             IMAGE_5_ARRAY[18,4] := 7;
  418.    IMAGE_5_ARRAY[19,1] := 39;
  419.       IMAGE_5_ARRAY[19,2] := 7;
  420.          IMAGE_5_ARRAY[19,3] := 44;
  421.             IMAGE_5_ARRAY[19,4] := 9;
  422.    IMAGE_5_ARRAY[20,1] := 44;
  423.       IMAGE_5_ARRAY[20,2] := 9;
  424.          IMAGE_5_ARRAY[20,3] := 42;
  425.             IMAGE_5_ARRAY[20,4] := 14;
  426.    IMAGE_5_ARRAY[21,1] := 44;
  427.       IMAGE_5_ARRAY[21,2] := 9;
  428.          IMAGE_5_ARRAY[21,3] := 46;
  429.             IMAGE_5_ARRAY[21,4] := 14;
  430.    IMAGE_5_ARRAY[22,1] := 4;
  431.       IMAGE_5_ARRAY[22,2] := 14;
  432.          IMAGE_5_ARRAY[22,3] := 18;
  433.             IMAGE_5_ARRAY[22,4] := 28;
  434.    IMAGE_5_ARRAY[23,1] := 10;
  435.       IMAGE_5_ARRAY[23,2] := 14;
  436.          IMAGE_5_ARRAY[23,3] := 18;
  437.             IMAGE_5_ARRAY[23,4] := 28;
  438.    IMAGE_5_ARRAY[24,1] := 10;
  439.       IMAGE_5_ARRAY[24,2] := 14;
  440.          IMAGE_5_ARRAY[24,3] := 22;
  441.             IMAGE_5_ARRAY[24,4] := 28;
  442.    IMAGE_5_ARRAY[25,1] := 16;
  443.       IMAGE_5_ARRAY[25,2] := 14;
  444.          IMAGE_5_ARRAY[25,3] := 22;
  445.             IMAGE_5_ARRAY[25,4] := 28;
  446.    IMAGE_5_ARRAY[26,1] := 25;
  447.       IMAGE_5_ARRAY[26,2] := 14;
  448.          IMAGE_5_ARRAY[26,3] := 22;
  449.             IMAGE_5_ARRAY[26,4] := 28;
  450.    IMAGE_5_ARRAY[27,1] := 22;
  451.       IMAGE_5_ARRAY[27,2] := 28;
  452.          IMAGE_5_ARRAY[27,3] := 25;
  453.             IMAGE_5_ARRAY[27,4] := 34;
  454.    IMAGE_5_ARRAY[28,1] := 25;
  455.       IMAGE_5_ARRAY[28,2] := 14;
  456.          IMAGE_5_ARRAY[28,3] := 28;
  457.             IMAGE_5_ARRAY[28,4] := 28;
  458.    IMAGE_5_ARRAY[29,1] := 36;
  459.       IMAGE_5_ARRAY[29,2] := 14;
  460.          IMAGE_5_ARRAY[29,3] := 28;
  461.             IMAGE_5_ARRAY[29,4] := 28;
  462.    IMAGE_5_ARRAY[30,1] := 42;
  463.       IMAGE_5_ARRAY[30,2] := 14;
  464.          IMAGE_5_ARRAY[30,3] := 28;
  465.             IMAGE_5_ARRAY[30,4] := 28;
  466.    IMAGE_5_ARRAY[31,1] := 42;
  467.       IMAGE_5_ARRAY[31,2] := 14;
  468.          IMAGE_5_ARRAY[31,3] := 37;
  469.             IMAGE_5_ARRAY[31,4] := 24;
  470.    IMAGE_5_ARRAY[32,1] := 46;
  471.       IMAGE_5_ARRAY[32,2] := 14;
  472.          IMAGE_5_ARRAY[32,3] := 37;
  473.             IMAGE_5_ARRAY[32,4] := 24;
  474.    IMAGE_5_ARRAY[33,1] := 25;
  475.       IMAGE_5_ARRAY[33,2] := 14;
  476.          IMAGE_5_ARRAY[33,3] := 36;
  477.             IMAGE_5_ARRAY[33,4] := 10;
  478.    IMAGE_5_ARRAY[34,1] := 28;
  479.       IMAGE_5_ARRAY[34,2] := 28;
  480.          IMAGE_5_ARRAY[34,3] := 25;
  481.             IMAGE_5_ARRAY[34,4] := 34;
  482.    For INDEX := 1 To 34 Do Begin
  483.       Line((Round(LEFT_X_VAL + (IMAGE_5_ARRAY[INDEX,1] * SIZE_FACTOR))),
  484.           (Round(TOP_y_VAL + (IMAGE_5_ARRAY[INDEX,2] * SIZE_FACTOR))),
  485.           (Round(LEFT_X_VAL + (IMAGE_5_ARRAY[INDEX,3] * SIZE_FACTOR))),
  486.           (Round(TOP_Y_VAL + (IMAGE_5_ARRAY[INDEX,4] * SIZE_FACTOR))));
  487.    End;
  488.    CENTER_X := LEFT_X_VAL + (Round ( 12 * SIZE_FACTOR));
  489.    CENTER_Y := TOP_Y_VAL + (Round (15 * SIZE_FACTOR));
  490.    FloodFill(CENTER_X,CENTER_Y,GetMaxColor);
  491.    CENTER_X := LEFT_X_VAL + (Round ( 40 * SIZE_FACTOR));
  492.    CENTER_Y := TOP_Y_VAL + (Round (10 * SIZE_FACTOR));
  493.    FloodFill(CENTER_X,CENTER_Y,GetMaxColor);
  494.    CENTER_X := LEFT_X_VAL + 1 + (Round ( 36 * SIZE_FACTOR));
  495.    CENTER_Y := TOP_Y_VAL + (Round (18 * SIZE_FACTOR));
  496.    FloodFill(CENTER_X,CENTER_Y,GetMaxColor);
  497. End;
  498.  
  499. Procedure MAKE_MENU;
  500. {**********************************************************}
  501. {**                                                      **}
  502. {**                                                      **}
  503. {**                                                      **}
  504. {**********************************************************}
  505. Begin
  506. ClearDevice;
  507. IMAGE_1(0,0,0.5);
  508. IMAGE_2(49,0,0.5);
  509. IMAGE_3(98,0,0.5);
  510. IMAGE_4(148,0,0.5);
  511. IMAGE_5(197,0,0.5);
  512. IMAGE_1(246,0,0.5);
  513. IMAGE_2(290,0,0.5);
  514. IMAGE_3(290,45,0.5);
  515. IMAGE_4(290,89,0.5);
  516. IMAGE_5(290,134,0.5);
  517. IMAGE_1(290,173,0.5);
  518. IMAGE_2(246,173,0.5);
  519. IMAGE_3(197,173,0.5);
  520. IMAGE_4(148,173,0.5);
  521. IMAGE_5(98,173,0.5);
  522. IMAGE_1(49,173,0.5);
  523. IMAGE_2(0,173,0.5);
  524. IMAGE_3(0,134,0.5);
  525. IMAGE_4(0,89,0.5);
  526. IMAGE_5(0,45,0.5);
  527.  
  528. End;
  529. Procedure SONG;
  530. {************************************************************}
  531. {**                                                        **}
  532. {**    This procedure plays a few bars of On a Clear Day   **}
  533. {**                                                        **}
  534. {************************************************************}
  535.  
  536.  Var
  537.     S,Q,H,T,W,AL,ASL,BL,DQ,ET,TE,
  538.     C,CS,D,DS,E,F,FS,G,GS,A,AS,B,
  539.     CH,CSH,DH,DSH,EH,FH,FSH,GH,GSH,AH,ASH,BH   :Integer;
  540.  
  541. Procedure PLAY (NOTE : Integer; TIME : Integer);
  542. {*********************************************************}
  543. {**       PLAY  Sub procedure in Song                   **}
  544. {*********************************************************}
  545. Begin
  546.    Sound (NOTE);
  547.    Delay (TIME);
  548.    NoSound;
  549. End;
  550.  
  551. Procedure MAIN_SOUND;
  552. {*********************************************************}
  553. {**       MAIN_SOUND  Sub procedure in Song             **}
  554. {*********************************************************}
  555.    Begin
  556.      PLAY (G,Q);
  557.      PLAY (B,Q);
  558.      PLAY (EH,H);
  559.      PLAY (B,H);
  560.      PLAY (B,H);
  561.      PLAY (A,Q);
  562.      PLAY (B,Q);
  563.      PLAY (CH,H);
  564.      PLAY (B,H);
  565.      PLAY (G,W);
  566.      PLAY (A,W);
  567.      PLAY (G,W);
  568.  End;                           {MAIN_SOUND}
  569. {*********************************************************}
  570. {**  SONG                                               **}
  571. {*********************************************************}
  572. Begin
  573.   W := 2160;          {times}
  574.   Q := 540;
  575.   H := 1080;
  576.   T := 1620;
  577.   DQ := 808;
  578.   ET := 272;
  579.   AL := 220;         {tones}
  580.   ASL := 233;
  581.   BL := 247;
  582.   C := 262;
  583.   CS := 277;
  584.   D := 294;
  585.   DS := 311;
  586.   E := 330;
  587.   F := 349;
  588.   FS := 370;
  589.   G := 392;
  590.   GS := 415;
  591.   A := 440;
  592.   AS := 466;
  593.   B := 494;
  594.   CH := 523;
  595.   CSH := 554;
  596.   DH := 587;
  597.   DSH := 622;
  598.   EH := 659;
  599.   FH := 699;
  600.   FSH := 740;
  601.   GH := 784;
  602.   GSH := 831;
  603.   AH := 880;
  604.   ASH := 932;
  605.   BH := 988;
  606.   MAIN_SOUND;
  607. End;                  {Song}
  608.  
  609. Procedure PROGRAM_INFO;
  610. {**********************************************************}
  611. {**                                                      **}
  612. {**   PROGRAM_INFO                                       **}
  613. {**                                                      **}
  614. {**********************************************************}
  615. Var ANSWER_CHAR : Char ;
  616. Begin                                           {PROGRAM INFO}
  617.    MoveTo(0,30);
  618.    OutText('     ESPTEST is a copyright 1991 by Phil Mosier');
  619.    MoveTo(0,40);
  620.    OutText('     Each trial is saved in full detail to be used  ');
  621.    MoveTo(0,50);
  622.    OutText('latter for a full analysis.  Each ASCII record    ');
  623.    MoveTo(0,60);
  624.    OutText('saves: the time, date, color of the screen, type  ');
  625.    MoveTo(0,70);
  626.    OutText('of test, elapsed time in seconds, the image of the');
  627.    MoveTo(0,80);
  628.    OutText('target, the place of all the targets on the     ');
  629.    MoveTo(0,90);
  630.    OutText('screen, the current name of the record file.     ');
  631.    MoveTo(0,100);
  632.    OutText('     The analysis screen computes the probability,');
  633.    MoveTo(0,110);
  634.    OutText('the confidence level, and the next level      ');
  635.    MoveTo(0,120);
  636.    OutText('analysises the differences among proportions.');
  637.    MoveTo(0,130);
  638.    OutText('     For Registration send $35.oo plus $4.oo for');
  639.    MoveTo(0,140);
  640.    OutText('Postage and Handling to:');
  641.    MoveTo(0,160);
  642.    OutText('                  Phil Mosier     ');
  643.    MoveTo(0,170);
  644.    OutText('                  2728 Bridgeford Dr.');
  645.    MoveTo(0,180);
  646.    OutText('                  Sacramento,CA 95833');
  647.    MoveTo(0,190);
  648.    OutText('  Press any key');
  649.    ANSWER_CHAR := ReadKey;
  650. End;
  651.  
  652. Procedure BOXES;
  653. {**********************************************************}
  654. {**                                                      **}
  655. {**   BOXES                                              **}
  656. {**                                                      **}
  657. {**********************************************************}
  658. Begin                                  {BOXES}
  659.    ClearDevice;
  660.    Line(50,30,250,30);
  661.    Line(50,50,250,50);
  662.    Line(50,70,250,70);
  663.    Line(50,30,50,70);
  664.    Line(90,30,90,70);
  665.    Line(130,30,130,70);
  666.    Line(170,30,170,70);
  667.    Line(210,30,210,70);
  668.    Line(250,30,250,85);
  669.    Line(250,85,315,85);
  670.  
  671.    Line(50,85,250,85);
  672.    Line(50,105,250,105);
  673.    Line(50,125,250,125);
  674.    Line(50,85,50,125);
  675.    Line(90,85,90,125);
  676.    Line(130,85,130,125);
  677.    Line(170,85,170,125);
  678.    Line(210,85,210,125);
  679.    Line(250,85,250,180);
  680.  
  681.    Line(50,145,130,145);
  682.    Line(50,165,130,165);
  683.    Line(50,185,130,185);
  684.    Line(50,145,50,185);
  685.    Line(90,145,90,185);
  686.    Line(130,125,130,185);
  687.  
  688.    IMAGE_1(50,0,0.5);
  689.    IMAGE_2(90,0,0.5);
  690.    IMAGE_3(130,0,0.5);
  691.    IMAGE_4(170,0,0.5);
  692.    IMAGE_5(210,0,0.5);
  693.    MoveTo(10,33);
  694.    OutText('Hits');
  695.    MoveTo(10,53);
  696.    OutText('Misses');
  697.    MoveTo(10,88);
  698.    OutText('Hits');
  699.    MoveTo(10,108);
  700.    OutText('Misses');
  701.    MoveTo(10,145);
  702.    OutText('Hits');
  703.    MoveTo(10,165);
  704.    OutText('Misses');
  705.    MoveTo(50,74);
  706.    OutText('Place 1   2      3      4      5');
  707.    MoveTo(45,126);
  708.    OutText('Shorter Longer');
  709.    MoveTo(45,135);
  710.    OutText('Times   Times');
  711.    MoveTo(0,190);
  712.    OutText(' Enter Q to QUIT and return to MENU');
  713. End;                                   {BOXES}
  714.  
  715. End.
  716.  
  717. 
  718.